package com.ruoyi.kjy.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.mp.domain.CommonEntity;
import com.ruoyi.common.mp.handle.ListToStringHandle;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description:
 * @Author: Hi，Wang
 * @Date: 12/31,0031 17:37
 */

@Data
@TableName(autoResultMap = true)
public class MigrationEnterprise extends CommonEntity {


    @TableId(type = IdType.AUTO)
    private String id; // 主键ID


    private Long userId; // 用户ID

    // 企业基本信息
    private String enterpriseName; // 企业名称
    private String legalRepresentative; // 法人代表
    private String legalRepresentativePhone; // 法人联系电话
    private String legalRepresentativeEmail; // 法人邮箱地址
    private String handler; // 经办人
    //是否是高新技术企业
    private Integer highTech; // 是否是高新技术企业
    private String highTechCertification; // 高新技术企业认证证书编号

    //    /是否科技型中小企业
    private Integer techSmall; // 是否科技型中小企业
    private String techSmallCertification; // 科技型中小企业认证证书编号

    //是否获得其他资质
    private Integer otherQualification; // 是否获得其他资质
    private String otherQualificationName; // 获得其他资质名称
    private String otherQualificationCertification; // 获得其他资质认证证书编号

    private String handlerPhone; // 经办人联系电话
    private String handlerEmail; // 经办人邮箱地址
    private String registeredAddress; // 注册地址
    private String actualBusinessAddress; // 实际经营地址
    private BigDecimal registeredCapital; // 注册资本（万元）
    private BigDecimal paidInCapital; // 实收资本（万元）
    private BigDecimal lastYearRevenue; // 上年度经营收入
    private BigDecimal lastYearTax; // 上年度利税
    private Integer employeeCount; // 员工人数
    private Integer initialParkEntryCount; // 初始入园人数
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date establishmentDate; // 成立日期
    private String enterpriseNature; // 企业性质 下拉框
    private String enterpriseType; // 企业类型  下拉框
    private String industry; // 所属行业
    private String mainBusiness; // 主营业务
    private String entryMethod; // 入园方式
    private String entryBusiness; // 入园业务

    // 园区场地需求
    private BigDecimal rentalArea; // 租赁面积（平方米）
    private Integer leaseTerm; // 租期（年）
    private String locationRequirement; // 位置要求
    private String otherRequirements; // 其他要求

    // 股东构成
    @TableField(typeHandler = ListToStringHandle.class)
    private List<Shareholder> shareholders; // 股东列表

    @TableField(typeHandler = ListToStringHandle.class)
    // 主要人员简介
    private List<KeyPersonnel> keyPersonnel; // 主要人员列表

    // 入园项目简要介绍和分析
    private String projectIntroduction; // 项目简介
    private String competitiveAdvantageAnalysis; // 竞争优势分析
    private String marketProspectAnalysis; // 市场前景分析
    private String energyConsumption; // 能耗情况
    private String pollution; // 污染情况
    private String noise; // 噪声情况
    private String otherProjectDetails; // 其他情况


    @TableField(typeHandler = ListToStringHandle.class)
    // 知识产权情况
    private List<IntellectualProperty> intellectualProperties; // 知识产权列表


    @TableField(typeHandler = ListToStringHandle.class)
    // 承担财政资金资助项目及获奖情况
    private List<FundingAndAward> fundingAndAwards; // 资助项目及获奖列表

    // 其他信息
    private String previousCooperationWithGuet; // 以往与桂电的合作情况
    private String scienceParkOpinion; // 科技园意见
    private String remarks; // 备注

    // 附件信息
    private String businessLicense; // 营业执照复印件
    private String legalRepresentativeId; // 法人身份证复印件
    private String lastYearFinancialStatement; // 上年度财务报表复印件
    private String proofOfIdentity; // 学生证/教师资格证/校友毕业证或学位证
    //教师资格证
    private String teacherCertificate; // 教师资格证复印件
    // 学生证
    private String studentCertificate; // 学生证复印件
    // 校友毕业证或学位证
    private String graduationCertificate; // 校友毕业证或学位证复印件


    private Integer status; // 状态 0：待审核 1：已审核  2 未通过


    @Data
    // 内部类：股东信息
    public static class Shareholder {
        private String shareholderName; // 股东姓名或名称
        private Double shareRatio; // 股份比例
        private String shareholderNature; // 股东性质

        // Getters and Setters
    }


    @Data
    // 内部类：主要人员信息
    public static class KeyPersonnel {
        private String name; // 姓名
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date birthDate; // 出生年月
        private String position; // 职务
        private String graduatedSchool; // 毕业院校
        private String title; // 职称
        private String education; // 学历
        private String major; // 专业

        // Getters and Setters
    }

    // 内部类：知识产权信息

    @Data
    public static class IntellectualProperty {
        private String name; // 知识产权名称
        private String type; // 知识产权类别
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date applicationDate; // 申请时间
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date approvalDate; // 批准时间
        private String url;

        // Getters and Setters
    }


    @Data
    // 内部类：资助项目及获奖信息
    public static class FundingAndAward {
        private String projectAwardName; // 项目奖项名称
        private String level; // 级别
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date date; // 时间
        private Double governmentFundingAmount; // 获得政府资助金额
        private String awardingDepartmentAndDate; // 颁奖部门/时间

        // Getters and Setters
    }
}
